home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / game / patch / WHDIDemos.lzh / Razor1911_Voyage.lha / VoyageHD / src / Voyage.slave.asm < prev   
Assembly Source File  |  2000-04-19  |  2KB  |  98 lines

  1. ; Razor 1911 demo loader by Kyzer/CSG
  2.  
  3.     include    whdload.i
  4.     include    whdmacros.i
  5.  
  6. base    SLAVE_HEADER
  7.     dc.w    7,WHDLF_Disk!WHDLF_NoError
  8.     dc.l    $100000,0        ; basemem, 0
  9.     dc.w    start-base,0,0        ; slave code, dir, dontcache
  10.     dc.b    0,$59            ; debugkey, quitkey
  11.  
  12. resload    dc.l    0
  13. flush    dc.l    0
  14. start    lea    resload(pc),a1
  15.     move.l    a0,(a1)+
  16.     adda.w    #resload_FlushCache,a0
  17.     move.l    a0,(a1)
  18.  
  19.     lea    $400.w,a0
  20.     move.l    a0,sp
  21.     move.l    #$4e716002,(a0)+    ;$400: NOP, load
  22.     move.l    #$4e754ef9,(a0)+    ;$402: load(a0=addr,d0=name)
  23.     lea    loader(pc),a1        ;$404: diskmotor off
  24.     move.l    a1,(a0)
  25.  
  26.     lea    _custom+2,a6
  27.  
  28.     lea    $40000,a0
  29.     move.l    #"boot",d0
  30.     bsr    loader
  31.  
  32.     patch    $40666,.cont
  33.     jmp    $40646
  34. .cont    patch    $d9c.w,decr1        ; use decrunchers in fastmem
  35.     patch    $dfc.w,decr2
  36.     patch    $e12.w,decr3
  37.  
  38.     lea    $778a.w,a0
  39.     move.l    #"PIC1",d0
  40.     bsr.s    loader
  41.     lea    $7ffe.w,a0
  42.     lea    $74da0,a1
  43.     bsr    decr1
  44.  
  45.     move.l    #$40980,$6c.w
  46.     move.l    #$40be6,cop1lc-2(a6)
  47.     move.w    #0,copjmp1-2(a6)
  48.     move.w    #$83c0,dmacon-2(a6)
  49.     move.w    #$c028,intena-2(a6)    ; add kbd int
  50.  
  51.     ;move.w    #$4afc,$4082e
  52.     jmp    $4071a
  53.  
  54. loader    movem.l    d0-d2/a0-a1,-(sp)
  55.     lea    .dir-8(pc),a1
  56. .file    addq.l    #8,a1
  57.     move.l    (a1)+,d1
  58.     beq.s    .done
  59.     cmp.l    d0,d1
  60.     bne.s    .file
  61.     movem.l    (a1)+,d0/d1
  62.     move.l    resload(pc),a1
  63.     moveq    #1,d2
  64.     move.w    #$4000,intena-2(a6)
  65.     jsr    resload_DiskLoad(a1)    ; a0=addr/d0=offset/d1=size/d2=1
  66.     move.w    #$c000,intena-2(a6)
  67. .done    movem.l    (sp)+,d0-d2/a0-a1
  68.     rts
  69.  
  70. .dir    dc.l    'boot', 000000, 5632
  71.     dc.l    'PIC1', 005632, 22336
  72.     dc.l    'MUS1', 027968, 134740
  73.     dc.l    'DAT1', 162708, 8796
  74.     dc.l    'MAIN', 197632, 2560
  75.     dc.l    'OPEN', 171504, 25836
  76.     dc.l    'FLY ', 200192, 19840
  77.     dc.l    'PIC2', 220032, 29660
  78.     dc.l    'IMAG', 249692, 93788
  79.     dc.l    'MOVI', 343480, 65664
  80.     dc.l    'PARA', 409600, 36524
  81.     dc.l    'BJOE', 446124, 2428
  82.     dc.l    'MUS2', 448552, 176948
  83.     dc.l    'HRRY', 625664, 59500
  84.     dc.l    'BOX ', 685164, 22128
  85.     dc.l    'RUN ', 707292, 4960
  86.     dc.l    'BLUB', 712252, 25940
  87.     dc.l    'REAL', 738192, 15188
  88.     dc.l    'GO  ', 753380, 5964
  89.     dc.l    0
  90.  
  91. decr1    move.l    flush(pc),-(sp)
  92.     bra.s    decr
  93. decr2    move.l    flush(pc),-(sp)
  94.     bra.s    decr+$60
  95. decr3    move.l    flush(pc),-(sp)
  96.     bra.s    decr+$76
  97. decr    incbin    decr.bin
  98.